<?php
error_reporting(0);
session_start();
function prsBuscarAccesos($__tipoelector, $__descripcion) {
if ($_SESSION['S_TIPOUSUARIO']=="SUP") {
	        $usuario=$_SESSION['S_USUARIO'];
		$sql="select * from usuario_det where usuario='$usuario'";
		$rs_tabla = mysql_query($sql);
		$num_filas=mysql_num_rows($rs_tabla);
		$where ="1=1 and ";
		if ($num_filas>0){
			for ($i = 0; $i < $num_filas; $i++){
				$condicion=mysql_result($rs_tabla,$i,"tipo_elector");
				$where=$where." tipo_elector='".$condicion."' or ";
				if ($i==$num_filas-1) {
					$largo=strlen($where);
					$where=substr($where,0,$largo-4);
				}
			}	
		} else {
			echo "<font face='Tahoma' size='2' color='red'><b>NO POSEE PERMISO PARA ESTA ACCION!</b></font>";
			exit;
		}
	  $sql = Prepare("SELECT * 
                       FROM tipo_electores 
                       WHERE (borrado=0) 
					   AND (tipo_elector LIKE '$__tipoelector%'  
					   AND descripcion LIKE  '%$__descripcion%') 
                     ");
//					 AND (".$where.") 

} else if ($_SESSION['S_TIPOUSUARIO'] == "ADM") {
	  $sql = Prepare("SELECT * 
                       FROM tipo_electores 
                       WHERE (borrado=0) 
					   AND (tipo_elector LIKE '$__tipoelector%'  
					   AND descripcion LIKE  '%$__descripcion%') 
                     ");
			//AND (".$where.") 		 
}	
return $sql;
	
}

function prsBuscarPersonas($__usuario, $__apellidos, $__nombres) {
  $sql = Prepare("SELECT * 
                       FROM usuario 
                       WHERE usuario LIKE '$__usuario%'  
                       AND apellidos LIKE  '%$__apellidos%'
                       AND nombres LIKE  '%$__nombres%' 
                       ORDER BY apellidos
                     ");
  //$rs = GetAll($sql, array($__usuario."%", $__apellidos."%", $__nombres."%"));
  //return ($rs);
  return $sql;
}
function Prepare($sql)
	{
		return $sql;
	}
function GetAll($sql, $inputarr=false)
	{
		$arr = GetArray($sql,$inputarr);
		return $arr;
	}
	
function adaptar_fecha($fecha,$instruccion) {
  //^
  /*inicio patrones de fechas*/
  $patron_dia = "([0-9]{1}|[0-2]{1}[0-9]{1}|3[0-1]{1})";
  $patron_mes = "(0?[0-9]{1}|1[0-2]{1})";
  $patron_ano = "(19[0-9]{2}|2[0-9]{3})";
  /*fin patrones de fechas*/
  //comparar fechas codificadas en formato ingles o mysql aaaa-mm-dd
  $pattern_cod = "(^".$patron_ano."/".$patron_mes."/".$patron_dia.")";
  //comparar fechas codificadas en formato español dd-mm-aaaa
  $pattern_dec = "(^".$patron_dia."/".$patron_mes."/".$patron_ano.")";

  if ($instruccion == "codificar") {
     if (!ereg($pattern_dec,$fecha)) {
            $resultado = "";
     }
     else {
	   //se modifico por problemas con calendar.php cuando el dia y/o el mes tenian 1 digito

	   $Arraydma = explode("/",$fecha);
	   $Dia = $Arraydma[0];
	   $Mes = $Arraydma[1];
	   $Año = $Arraydma[2];
	   if (strlen($Dia) == 1) {
	       $Dia = "0$Dia";
	   }
	   if (strlen($Mes) == 1) {
	       $Mes = "0$Mes";
	   }
	   $resultado = "$Año"."-"."$Mes"."-"."$Dia";
		return $resultado;
		
     }

  }
  elseif ($instruccion == "decodificar") {
         if (!ereg($pattern_cod,$fecha)) {
		    $resultado = "";
	 }
	 else {
	    $resultado =substr($fecha,8,2)."/".substr($fecha,5,2)."/".substr($fecha,0,4);
	 }
  }
  return $resultado;
}// end function adaptar_fecha();

  function DESTACA_LINEA () {
     echo "style=background-color:'#F5F5F5'; onmouseover=this.style.backgroundColor='#EEEBCD';this.offsetParent.rows(this.rowIndex).style.backgroundColor='#EEEBCD'; onmouseout=this.style.backgroundColor='#F5F5F5';this.offsetParent.rows(this.rowIndex).style.backgroundColor='#F5F5F5'";
  }//end function

  // calendario visualizado en modulo calendario academico

  /* activar o desactivar iconos y/o nombres de los links */
  $SWN_MO = TRUE; //nombre link menu de opciones
  $SWI_MO = TRUE; //icono link menu de opciones
  $SWN_Lis = false; //nombre link listados
  $SWI_Lis = TRUE; //icono link listados
  include("links_e_iconos.php");

function checkExpire($url=0,$time=1)
{
$fechaGuardada = $_SESSION['S_ACCESO'];
date_default_timezone_set('UTC');
$ano = date('Y');
$ahora = date('Y-n-j H:i:s');
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

//comparamos el tiempo transcurrido
if($tiempo_transcurrido >= 10) {
	//si pasaron 10 minutos o más
    session_destroy(); // destruyo la sesión
    unset($_SESSION);
	
	echo 'Su sesion ha estado inactivo! <b><br><n><a href="index.php">Reinicie su consulta...</a>';
	//header("Location: login.php"); //envío al usuario a la pag. de autenticación
    //sino, actualizo la fecha de la sesión
    }else {
    $_SESSION['S_ACCESO'] = $ahora;
    //}
}}


function noCache() {
 /* header("Expires: Tue, 01 Jul 2001 06:00:00 GMT");
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  header("Pragma: no-cache");
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);*/
        }
function getRealIP()
{

   if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );

      // los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip real
      // del usuario se comienza a mirar por el principio hasta encontrar
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR

      $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);

      reset($entries);
      while (list(, $entry) = each($entries))
      {
         $entry = trim($entry);
         if ( preg_match("/^([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/", $entry, $ip_list) )
         {
            // http://www.faqs.org/rfcs/rfc1918.html
            $private_ip = array(
                  '/^0\\./',
                  '/^127\\.0\\.0\\.1/',
                  '/^192\\.168\\..*/',
                  '/^172\\.((1[6-9])|(2[0-9])|(3[0-1]))\\..*/',
                  '/^10\\..*/');

            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

            if ($client_ip != $found_ip)
            {
               $client_ip = $found_ip;
               break;
            }
         }
      }
   }
   else
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   }

   return $client_ip;

}
/*! 
  @function num2letras () 
  @abstract Dado un n?mero lo devuelve escrito. 
  @param $num number - N?mero a convertir. 
  @param $fem bool - Forma femenina (true) o no (false). 
  @param $dec bool - Con decimales (true) o no (false). 
  @result string - Devuelve el n?mero escrito en letra. 

*/ 
function numletras($num, $fem = true, $dec = true) { 
//if (strlen($num) > 14) die("El n?mero introducido es demasiado grande"); 
   $matuni[2]  = "dos"; 
   $matuni[3]  = "tres"; 
   $matuni[4]  = "cuatro"; 
   $matuni[5]  = "cinco"; 
   $matuni[6]  = "seis"; 
   $matuni[7]  = "siete"; 
   $matuni[8]  = "ocho"; 
   $matuni[9]  = "nueve"; 
   $matuni[10] = "diez"; 
   $matuni[11] = "once"; 
   $matuni[12] = "doce"; 
   $matuni[13] = "trece"; 
   $matuni[14] = "catorce"; 
   $matuni[15] = "quince"; 
   $matuni[16] = "dieciseis"; 
   $matuni[17] = "diecisiete"; 
   $matuni[18] = "dieciocho"; 
   $matuni[19] = "diecinueve"; 
   $matuni[20] = "veinte"; 
   $matunisub[2] = "dos"; 
   $matunisub[3] = "tres"; 
   $matunisub[4] = "cuatro"; 
   $matunisub[5] = "quin"; 
   $matunisub[6] = "seis"; 
   $matunisub[7] = "sete"; 
   $matunisub[8] = "ocho"; 
   $matunisub[9] = "nove"; 

   $matdec[2] = "veint"; 
   $matdec[3] = "treinta"; 
   $matdec[4] = "cuarenta"; 
   $matdec[5] = "cincuenta"; 
   $matdec[6] = "sesenta"; 
   $matdec[7] = "setenta"; 
   $matdec[8] = "ochenta"; 
   $matdec[9] = "noventa"; 
   $matsub[3]  = 'mill'; 
   $matsub[5]  = 'bill'; 
   $matsub[7]  = 'mill'; 
   $matsub[9]  = 'trill'; 
   $matsub[11] = 'mill'; 
   $matsub[13] = 'bill'; 
   $matsub[15] = 'mill'; 
   $matmil[4]  = 'millones'; 
   $matmil[6]  = 'billones'; 
   $matmil[7]  = 'de billones'; 
   $matmil[8]  = 'millones de billones'; 
   $matmil[10] = 'trillones'; 
   $matmil[11] = 'de trillones'; 
   $matmil[12] = 'millones de trillones'; 
   $matmil[13] = 'de trillones'; 
   $matmil[14] = 'billones de trillones'; 
   $matmil[15] = 'de billones de trillones'; 
   $matmil[16] = 'millones de billones de trillones'; 

   $num = trim((string)@$num); 
   if ($num[0] == '-') { 
      $neg = 'menos '; 
      $num = substr($num, 1); 
   }else 
      $neg = ''; 
   while ($num[0] == '0') $num = substr($num, 1); 
   if ($num[0] < '1' or $num[0] > 9) $num = '0' . $num; 
   $zeros = true; 
   $punt = false; 
   $ent = ''; 
   $fra = ''; 
   for ($c = 0; $c < strlen($num); $c++) { 
      $n = $num[$c]; 
      if (! (strpos(".,'''", $n) === false)) { 
         if ($punt) break; 
         else{ 
            $punt = true; 
            continue; 
         } 

      }elseif (! (strpos('0123456789', $n) === false)) { 
         if ($punt) { 
            if ($n != '0') $zeros = false; 
            $fra .= $n; 
         }else 

            $ent .= $n; 
      }else 

         break; 

   } 
   $ent = '     ' . $ent; 
   if ($dec and $fra and ! $zeros) { 
      $fin = ' coma'; 
      for ($n = 0; $n < strlen($fra); $n++) { 
         if (($s = $fra[$n]) == '0') 
            $fin .= ' cero'; 
         elseif ($s == '1') 
            $fin .= $fem ? ' una' : ' un'; 
         else 
            $fin .= ' ' . $matuni[$s]; 
      } 
   }else 
      $fin = ''; 
   if ((int)$ent === 0) return 'Cero ' . $fin; 
   $tex = ''; 
   $sub = 0; 
   $mils = 0; 
   $neutro = false; 
   while ( ($num = substr($ent, -3)) != '   ') { 
      $ent = substr($ent, 0, -3); 
      if (++$sub < 3 and $fem) { 
         $matuni[1] = 'una'; 
         $subcent = 'as'; 
      }else{ 
         $matuni[1] = $neutro ? 'un' : 'uno'; 
         $subcent = 'os'; 
      } 
      $t = ''; 
      $n2 = substr($num, 1); 
      if ($n2 == '00') { 
      }elseif ($n2 < 21) 
         $t = ' ' . $matuni[(int)$n2]; 
      elseif ($n2 < 30) { 
         $n3 = $num[2]; 
         if ($n3 != 0) $t = 'i' . $matuni[$n3]; 
         $n2 = $num[1]; 
         $t = ' ' . $matdec[$n2] . $t; 
      }else{ 
         $n3 = $num[2]; 
         if ($n3 != 0) $t = ' y ' . $matuni[$n3]; 
         $n2 = $num[1]; 

         $t = ' ' . $matdec[$n2] . $t; 
      } 
      $n = $num[0]; 
      if ($n == 1) { 
         $t = ' ciento' . $t; 
      }elseif ($n == 5){ 
         $t = ' ' . $matunisub[$n] . 'ient' . $subcent . $t; 
      }elseif ($n != 0){ 
         $t = ' ' . $matunisub[$n] . 'cient' . $subcent . $t; 
      } 
      if ($sub == 1) { 
      }elseif (! isset($matsub[$sub])) { 
         if ($num == 1) { 
            $t = ' mil'; 
         }elseif ($num > 1){ 
            $t .= ' mil'; 
         } 
      }elseif ($num == 1) { 
         $t .= ' ' . $matsub[$sub] . '?n'; 
      }elseif ($num > 1){ 
         $t .= ' ' . $matsub[$sub] . 'ones'; 
      }   
      if ($num == '000') $mils ++; 
      elseif ($mils != 0) { 
         if (isset($matmil[$sub])) $t .= ' ' . $matmil[$sub]; 
         $mils = 0; 
      } 
      $neutro = true; 
      $tex = $t . $tex; 
   } 
   $tex = $neg . substr($tex, 1) . $fin; 
   return ucfirst($tex); 
} 
function check_email_address($email) 
{
	# Primero, checamos que solo haya un símbolo @, y que los largos sean correctos
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) 
	{
		# correo inválido por número incorrecto de caracteres en una parte, o número incorrecto de símbolos @
    return false;
  }
  # se divide en partes para hacerlo más sencillo
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) 
	{
    if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) 
		{
      return false;
    }
  } 
  # se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
	if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) 
	{ 
     $domain_array = explode(".", $email_array[1]);
     if (sizeof($domain_array) < 2) 
		 {
        return false; # No son suficientes partes o secciones para se un dominio
     }
     for ($i = 0; $i < sizeof($domain_array); $i++) 
		 {
        if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) 
				{
           return false;
        }
     }
  }
  return true;
}

function cambiarFormatoFecha($fecha){
    list($anho,$mes,$dia)=explode("-",$fecha);
	
	if ($mes<10) {
		$mes = "".$mes;
	}
	if ($dia<10) {
		$dia="".$dia;
	}
    return $dia."-".$mes."-".$anho;
}  
function RandomString($length=4,$uc=0,$n=1,$sc=0)
	{
	    //$source = 'abcdefghijklmnopqrstuvwxyz';
	    if($uc==1) $source .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	    if($n==1) $source .= '1234567890';
	    if($sc==1) $source .= '|@#~$%()=^*+[]{}-_';
	    if($length>0){
	        $rstr = "";
	        $source = str_split($source,1);
	        for($i=1; $i<=$length; $i++){
	            mt_srand((double)microtime() * 1000000);
	            $num = mt_rand(1,count($source));
	            $rstr .= $source[$num-1];
	        }
	 
	    }
	    return $rstr;
	}
?>
